using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;

namespace G1.EngineV
{
    public sealed class Engine
    {

        public static bool ShowFPS { get; set; }

        public static String StatusMessage = "";

        private static SceneManager _SceneManager;
        private static AssetManager _AssetManager;

        private static Console _Console;

        public static Console Console
        {
            get
            {
                if ( _Console == null )
                    _Console = new Console();

                return _Console;
            }
        }

        public static AssetManager AssetManager
        {
            get
            {
                return _AssetManager;
            }
            set
            {
                _AssetManager = value;
            }
        }

        private Thread _Thread;

        public static void Init()
        {
            ShowFPS = false;
            _SceneManager = new SceneManager();
            _AssetManager = new AssetManager();
        }

        public static void AddScene( Scene Scene )
        {
            _SceneManager.Add( Scene );
            Scene.Init();
        }

        public static Scene GetCurrentScene()
        {
            return _SceneManager.Scenes[0];
        }

        internal void SetThread( Thread Thread )
        {
            this._Thread = Thread;
        }

    }
}